# coding=utf8
import os.path, sys

sys.path.append(os.path.abspath(os.path.dirname(__file__)))


from os.path import abspath, join, dirname
from templates import opendocument
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import QgsGeometry
import logging
from common import inv
# нужно для определения платформы Windows, Linux
import platform
ODT_MIME = 'application/vnd.oasis.opendocument.text'

iface = None
class DoDoc():
    def __init__(self, iface):
        # Настройка логера logging.DEBUG писать в файл
        logging.basicConfig(format=u'%(levelname)-8s [%(asctime)s] %(message)s', level=logging.DEBUG, filename=u'mylog.log')
        # Save reference to the QGIS interface
        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        doDocFromTemplate(self)
                    
def doDocFromTemplate(self):  # , data, templateFile, outPutFile, openOrNot):
        """Печать документа на основе шаблона
        data данные для печати
        templateFile файл шаблона
        outPutFile результат
        openOrNot открывать в LibreOffice или нет"""
        layer = self.iface.mainWindow().activeLayer()
        selection = layer.selectedFeatures()
        # Определяем колличество выделенных объектов
        l = len(selection)
        if l < 1:
            # Сообщение если не выделен ни один из объектов
            QMessageBox.warning(self.iface.mainWindow(), u"Ошибка выбора данных",
                                                         u'Необходимо выбрать не менее одного объекта векторного слоя.')
            return False  
        for s in selection:
            # выборка атрибутов по имени
            if(1):
                idx = layer.fieldNameIndex(u'name')
                g = s.attributes()[idx] 
                if isinstance(g, int):
                    QMessageBox.information(self.iface.mainWindow(), "landex", str(g), QMessageBox.Ok)
                elif isinstance(g, basestring):
                    QMessageBox.information(self.iface.mainWindow(), "landex", g, QMessageBox.Ok)
                else:
                    QMessageBox.information(self.iface.mainWindow(), "landex", "хз что это!", QMessageBox.Ok)
                # определяем ОС
                os = platform.system()
                
                if 'Windows' in platform.system():
                    logging.debug("OS " + platform.system())
                elif 'Linux' in platform.system():
                    logging.debug("OS " + platform.system())

if __name__ == '__main__':
    # ODT
    print "Обработка шаблона basic.odt",
    from relatorio.templates.opendocument import Template
    bonham_invoice=inv
    basic = Template(source=None, filepath='basic.odt', encoding='UTF8')
    basic_generated = basic.generate(o=bonham_invoice).render()
    file('bonham_basic.odt', 'wb').write(basic_generated.getvalue())
